/*
 * Copyright 2013 stanislawbartkowski@gmail.com 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 * http://www.apache.org/licenses/LICENSE-2.0 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License.
 */
package com.gwtmodel.table.memorypersist;

import com.gwtmodel.table.IDataListType;
import com.gwtmodel.table.IDataType;
import com.gwtmodel.table.slotmodel.AbstractSlotContainer;
import com.gwtmodel.table.slotmodel.CellId;
import com.gwtmodel.table.slotmodel.DataActionEnum;
import com.gwtmodel.table.slotmodel.ISlotSignalContext;
import com.gwtmodel.table.slotmodel.ISlotListener;

public class MemoryListPersist extends AbstractSlotContainer implements
        IMemoryListModel {

    private IDataListType dataList;

    @Override
    public IDataListType getDataList() {
        return dataList;
    }

    @Override
    public void setDataList(IDataListType dataList) {
        this.dataList = dataList;
    }

    private class ReadList implements ISlotListener {

        @Override
        public void signal(ISlotSignalContext slContext) {
            publish(dType, DataActionEnum.ListReadSuccessSignal, dataList);
        }
    }

    public MemoryListPersist(IDataType dType) {
        this.dType = dType;
        // create subscribers - ReadList
        registerSubscriber(dType, DataActionEnum.ReadListAction, new ReadList());
    }

    @Override
    public void startPublish(CellId cellId) {
    }
}
